<?php
class PeopleVademecumsController extends AppController {

	var $name = 'PeopleVademecums';
	var $uses = array('PeopleVademecum','Person','Vademecum');

    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }
    
	function index($id_paciente = null, $archivados = null) {
		$this->PeopleVademecum->recursive = 0;

		if(!$archivados){
			$peopleVademecums = $this->PeopleVademecum->find('all', array(
							'conditions' => array(
												'PeopleVademecum.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
												'PeopleVademecum.person_id' => $id_paciente,
												'NOT' => array ('PeopleVademecum.staterecord_id' => array('2','3'))
											),
							'order' => array('PeopleVademecum.fecha_fin DESC', 'Vademecum.name'),
			) );
		}else{ // Para mostrar tambien los registros ARCHIVADOS
			$peopleVademecums = $this->PeopleVademecum->find('all', array(
							'conditions' => array(
												'PeopleVademecum.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
												'PeopleVademecum.person_id' => $id_paciente,
												'NOT' => array ('PeopleVademecum.staterecord_id' => array('2'))
											),
							'order' => array('PeopleVademecum.fecha_fin DESC', 'Vademecum.name'),
			) );
		}
		$this->set('archivados', $archivados);
		$this->set('peopleVademecums', $peopleVademecums);
		$this->set('id_paciente', $id_paciente);
		$this->layout = 'ajax';
	}

	function view($id = null) {
		if (!$id) {
			$this->Session->setFlash(__('Invalid people vademecum', true));
			$this->redirect(array('action' => 'index'));
		}
		$this->set('peopleVademecum', $this->PeopleVademecum->read(null, $id));
	}

	function add($id_paciente = null) {
		if (!empty($this->data)) {

			// Si el Medicamento no se selecciono
			if(empty($this->data['PeopleVademecum']['vademecum_id'])){
				$this->Session->setFlash(__('Debe seleccionar un medicamento', true));
				$this->redirect('/people/view/'.$this->data['PeopleVademecum']['person_id'].'/7');
				exit;
			}

			$this->PeopleVademecum->create();

			// Depende del typeindicacionmedicamento_id, modifico la fecha de finalizacion

			if($this->data['PeopleVademecum']['typeindicacionmedicamento_id'] == 2){ // Crónicas
				$this->data['PeopleVademecum']['fecha_fin']['day'] = 1;
				$this->data['PeopleVademecum']['fecha_fin']['month'] = 1;
				$this->data['PeopleVademecum']['fecha_fin']['year'] = 2038;
			}

			if($this->data['PeopleVademecum']['typeindicacionmedicamento_id'] == 3){ // Unica vez
				$this->data['PeopleVademecum']['fecha_fin'] = $this->data['PeopleVademecum']['fecha_inicio'];
			}

			// Seteo datos que no vienen del Formulario
			$this->PeopleVademecum->set(array(
				'client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
				'user_id' => $this->Auth->user('id'),
			));

			if ($this->PeopleVademecum->save($this->data)) {
				$this->Session->setFlash(__('El medicamento fue asociado', true));
				$this->redirect('/people/view/'.$this->data['PeopleVademecum']['person_id'].'/7');
			} else {
				$this->Session->setFlash(__('El medicamento no pudo ser asociado. Por favor, intente luego.', true));
			}
		}
		$people = $this->PeopleVademecum->Person->find('list');
		$typeindicacionmedicamentos = $this->PeopleVademecum->Typeindicacionmedicamento->find('list');
		$this->set('id_paciente', $id_paciente);
		$this->set(compact('people', 'vademecums','typeindicacionmedicamentos'));
	}

	function edit($id = null) {
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid people vademecum', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->PeopleVademecum->save($this->data)) {
				$this->Session->setFlash(__('The people vademecum has been saved', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('The people vademecum could not be saved. Please, try again.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->PeopleVademecum->read(null, $id);
		}
		$people = $this->PeopleVademecum->Person->find('list');
		$vademecums = $this->PeopleVademecum->Vademecum->find('list');
		$this->set(compact('people', 'vademecums'));
	}

	function archivar($id = null, $id_paciente = null, $estado = null) {
		if (!$id) {
			$this->Session->setFlash(__('Medicación no valida', true));
			$this->redirect('/dashboards');
		}

		if (!$id_paciente) {
			$this->Session->setFlash(__('Paciente no valido', true));
			$this->redirect('/dashboards');
		}

		if (!$estado) {
			$this->Session->setFlash(__('Estado no valido', true));
			$this->redirect('/dashboards');
		}

		$this->PeopleVademecum->id = $id;
		$this->PeopleVademecum->set(array(
			'staterecord_id' =>  $estado,
			'user_id' => $this->Auth->user('id'),
		));


		if ($this->PeopleVademecum->save()) {
			$this->Session->setFlash(__('La Medicación fue procesada.', true));
			$this->redirect('/people/view/'.$id_paciente.'/7');
		}
		$this->Session->setFlash(__('La Medicación no pudo ser procesada', true));
		$this->redirect('/people/view/'.$id_paciente.'/7');
	}

	function editFechaFin($id = null) {

		if (!empty($this->params['form']['value']) AND $id){

			$this->PeopleVademecum->id = $id;

			// Si se pudo grabar
			if ($this->PeopleVademecum->saveField('fecha_fin',$this->params['form']['value'])){
				echo $this->params['form']['value'];
			}else{ // Si no pudo
				echo "No se pudo guardar el cambio...";
			}
		}

		$this->autoRender=false;
	}


}
?>